#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
#include <vector>

using namespace std;

class Sales_data {
public:
  Sales_data();
  Sales_data(string s)
      : _isbn(s) //列表初始化格式（：类内变量名（初始化值），）
  {}
  string isbn() { return _isbn; }
  string _isbn;
};

bool compareIsbn(
    Sales_data s1,
    Sales_data
        s2) //好像这里不能加const,报错：对象包含与成员函数不兼容的类型限定符
{
  return s1.isbn().size() < s2.isbn().size();
}
int main(int argc, char **argv) {
  Sales_data a("because"); //初始化对象
  Sales_data b("I");
  Sales_data c("Like");
  Sales_data d("your");
  Sales_data e("beautiful");
  Sales_data f("eyes");

  vector<Sales_data> vec1; // VS2010不支持列表初始化
  vec1[0] = a;
  vec1[1] = b;
  vec1[2] = c;
  vec1[3] = d;
  vec1[4] = e;
  vec1[5] = f;

  stable_sort(vec1.begin(), vec1.end(), compareIsbn); //排序
  cout << "排序后的vector:";
  for (int i = 0; i < vec1.size(); ++i) {
    cout << vec1[i].isbn() << " ";
  }

  return 0;
}